/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package gestion;

import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeSupport;
import java.io.Serializable;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.persistence.Transient;

/**
 *
 * @author Juan Antonio Tirado
 */
@Entity
@Table(name = "presupuesto", catalog = "lpd", schema = "")
@NamedQueries({@NamedQuery(name = "Presupuesto.findAll", query = "SELECT p FROM Presupuesto p"), @NamedQuery(name = "Presupuesto.findByIDpresupuesto", query = "SELECT p FROM Presupuesto p WHERE p.iDpresupuesto = :iDpresupuesto"), @NamedQuery(name = "Presupuesto.findByFecha", query = "SELECT p FROM Presupuesto p WHERE p.fecha = :fecha"), @NamedQuery(name = "Presupuesto.findByNombre", query = "SELECT p FROM Presupuesto p WHERE p.nombre = :nombre"), @NamedQuery(name = "Presupuesto.findByDireccion", query = "SELECT p FROM Presupuesto p WHERE p.direccion = :direccion"), @NamedQuery(name = "Presupuesto.findByCp", query = "SELECT p FROM Presupuesto p WHERE p.cp = :cp"), @NamedQuery(name = "Presupuesto.findByProvincia", query = "SELECT p FROM Presupuesto p WHERE p.provincia = :provincia"), @NamedQuery(name = "Presupuesto.findByTlf", query = "SELECT p FROM Presupuesto p WHERE p.tlf = :tlf"), @NamedQuery(name = "Presupuesto.findByNif", query = "SELECT p FROM Presupuesto p WHERE p.nif = :nif"), @NamedQuery(name = "Presupuesto.findByIrpf", query = "SELECT p FROM Presupuesto p WHERE p.irpf = :irpf"), @NamedQuery(name = "Presupuesto.findByDescuento", query = "SELECT p FROM Presupuesto p WHERE p.descuento = :descuento"), @NamedQuery(name = "Presupuesto.findByCaducado", query = "SELECT p FROM Presupuesto p WHERE p.caducado = :caducado"), @NamedQuery(name = "Presupuesto.findByLetraNIF", query = "SELECT p FROM Presupuesto p WHERE p.letraNIF = :letraNIF")})
public class Presupuesto implements Serializable {
    @Transient
    private PropertyChangeSupport changeSupport = new PropertyChangeSupport(this);
    private static final long serialVersionUID = 1L;
    @Id
    @Basic(optional = false)
    @Column(name = "ID_presupuesto")
    private Integer iDpresupuesto;
    @Basic(optional = false)
    @Column(name = "Fecha")
    private String fecha;
    @Basic(optional = false)
    @Column(name = "Nombre")
    private String nombre;
    @Column(name = "Direccion")
    private String direccion;
    @Column(name = "CP")
    private Integer cp;
    @Column(name = "Provincia")
    private String provincia;
    @Column(name = "Tlf")
    private Integer tlf;
    @Column(name = "NIF")
    private Integer nif;
    @Column(name = "IRPF")
    private Float irpf;
    @Column(name = "Descuento")
    private Float descuento;
    @Column(name = "Caducado")
    private Boolean caducado;
    @Basic(optional = false)
    @Column(name = "letraNIF")
    private String letraNIF;

    public Presupuesto() {
    }

    public Presupuesto(Integer iDpresupuesto) {
        this.iDpresupuesto = iDpresupuesto;
    }

    public Presupuesto(Integer iDpresupuesto, String fecha, String nombre, String letraNIF) {
        this.iDpresupuesto = iDpresupuesto;
        this.fecha = fecha;
        this.nombre = nombre;
        this.letraNIF = letraNIF;
    }

    public Presupuesto(String IDpresupuesto, String fecha, String Nombre, String Direccion, String cp, String provincia, String telf, String NIF, String irpf, String dto, Boolean Caducado, String letraNif) {
         Integer a,b,c;
         Float d,e;
        this.iDpresupuesto=Integer.parseInt(IDpresupuesto);
        if(fecha==null || fecha.equals("") ){
            this.fecha=null;
        }else{
            this.fecha = fecha; }
        if (Nombre==null || Nombre.equals("")){
            this.nombre=null;
        }else{this.nombre = Nombre;}
        if(Direccion==null || Direccion.equals("") ){
            this.direccion=null;
        }else{
            this.direccion = Direccion; }

        if(cp==null || cp.equals("") ){
            //error
        }else{
            a=Integer.parseInt(cp);
            this.cp = a; }
        if(provincia==null || provincia.equals("") ){
            this.provincia=null;
        }else{
            this.provincia = provincia; }
        if (telf==null || telf.equals("")){
            //TODO error
        }else{
            b=Integer.parseInt(telf);
            this.tlf = b;}
        if(NIF==null || NIF.equals("") ){
            //error
        }else{
            c=Integer.parseInt(NIF);
            this.nif = c; }
        if(irpf==null || irpf.equals("") ){
            //error
        }else{
            d=Float.parseFloat(irpf);
            this.irpf = d; }

        if(dto==null || dto.equals("") ){
            //error
        }else{
            e=Float.parseFloat(dto);
            this.descuento = e; }
        if(letraNif==null || letraNif.equals("") ){
            this.letraNIF=null;
        }else{
            this.letraNIF = letraNif; }
        this.caducado = Caducado;
    }


    public Integer getIDpresupuesto() {
        return iDpresupuesto;
    }

    public void setIDpresupuesto(Integer iDpresupuesto) {
        Integer oldIDpresupuesto = this.iDpresupuesto;
        this.iDpresupuesto = iDpresupuesto;
        changeSupport.firePropertyChange("IDpresupuesto", oldIDpresupuesto, iDpresupuesto);
    }

    public String getFecha() {
        return fecha;
    }

    public void setFecha(String fecha) {
        String oldFecha = this.fecha;
        this.fecha = fecha;
        changeSupport.firePropertyChange("fecha", oldFecha, fecha);
    }

    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        String oldNombre = this.nombre;
        this.nombre = nombre;
        changeSupport.firePropertyChange("nombre", oldNombre, nombre);
    }

    public String getDireccion() {
        return direccion;
    }

    public void setDireccion(String direccion) {
        String oldDireccion = this.direccion;
        this.direccion = direccion;
        changeSupport.firePropertyChange("direccion", oldDireccion, direccion);
    }

    public Integer getCp() {
        return cp;
    }

    public void setCp(Integer cp) {
        Integer oldCp = this.cp;
        this.cp = cp;
        changeSupport.firePropertyChange("cp", oldCp, cp);
    }

    public String getProvincia() {
        return provincia;
    }

    public void setProvincia(String provincia) {
        String oldProvincia = this.provincia;
        this.provincia = provincia;
        changeSupport.firePropertyChange("provincia", oldProvincia, provincia);
    }

    public Integer getTlf() {
        return tlf;
    }

    public void setTlf(Integer tlf) {
        Integer oldTlf = this.tlf;
        this.tlf = tlf;
        changeSupport.firePropertyChange("tlf", oldTlf, tlf);
    }

    public Integer getNif() {
        return nif;
    }

    public void setNif(Integer nif) {
        Integer oldNif = this.nif;
        this.nif = nif;
        changeSupport.firePropertyChange("nif", oldNif, nif);
    }

    public Float getIrpf() {
        return irpf;
    }

    public void setIrpf(Float irpf) {
        Float oldIrpf = this.irpf;
        this.irpf = irpf;
        changeSupport.firePropertyChange("irpf", oldIrpf, irpf);
    }

    public Float getDescuento() {
        return descuento;
    }

    public void setDescuento(Float descuento) {
        Float oldDescuento = this.descuento;
        this.descuento = descuento;
        changeSupport.firePropertyChange("descuento", oldDescuento, descuento);
    }

    public Boolean getCaducado() {
        return caducado;
    }

    public void setCaducado(Boolean caducado) {
        Boolean oldCaducado = this.caducado;
        this.caducado = caducado;
        changeSupport.firePropertyChange("caducado", oldCaducado, caducado);
    }

    public String getLetraNIF() {
        return letraNIF;
    }

    public void setLetraNIF(String letraNIF) {
        String oldLetraNIF = this.letraNIF;
        this.letraNIF = letraNIF;
        changeSupport.firePropertyChange("letraNIF", oldLetraNIF, letraNIF);
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (iDpresupuesto != null ? iDpresupuesto.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof Presupuesto)) {
            return false;
        }
        Presupuesto other = (Presupuesto) object;
        if ((this.iDpresupuesto == null && other.iDpresupuesto != null) || (this.iDpresupuesto != null && !this.iDpresupuesto.equals(other.iDpresupuesto))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "laboratorio.Presupuesto[iDpresupuesto=" + iDpresupuesto + "]";
    }

    public void addPropertyChangeListener(PropertyChangeListener listener) {
        changeSupport.addPropertyChangeListener(listener);
    }

    public void removePropertyChangeListener(PropertyChangeListener listener) {
        changeSupport.removePropertyChangeListener(listener);
    }

}
